layui.use(['admin'], function () {
    let $ = layui.$
        , admin = layui.admin
        , setter = layui.setter
        , xmSelect = layui.xmSelect
        , form = layui.form
        , controller = '/admin/auth.admin';

    let layerIndex = '';
    layui.data.sendParams = function (params) {
        layerIndex = params.lay_index;
    }

    if($("#adminPopupXmSelect").length > 0){
        let field = {
            isTree: false,
            absoluteAuth: true, //
            initKey: '', // 初始key名称
            initValue: '', // 初始值
            select: true,
            quick_search: '',
            action: "index"
        };
        // 获取角色列表
        admin.req({
            url: setter.request.domainName + '/admin/auth.group/index'
            , data: field
            , type: 'get'
            , loading: true // 是否开启加载框
            , is_message: false
            , done: function (res) {
                let selectData = [];
                let initData   = [];
                let groupArrNodE = $("#admin_group_ids");
                let group_ids = groupArrNodE.val();
                if(res.data.options){
                    selectData = res.data.options;
                }
                if(group_ids !== 0 && group_ids !== '0' && group_ids){
                    // 编辑选中
                    initData = group_ids.split(",");
                }
                // 下拉选择框
                xmSelect.render({
                    el: '#adminPopupXmSelect',
                    prop: {
                        name: 'name',
                        value: 'id',
                    },
                    language: 'zn',
                    autoRow: true, // 自动换行
                    filterable: true, // 开启搜索模式
                    paging: true, // 开启分页
                    pageSize: 50, // 每页显示条数
                    initValue: initData, // 默认选中
                    radio: false, // 开启单选
                    clickClose: false, // 单选完关闭下拉
                    toolbar: {
                        show: true, // 显示工具条
                        list: [ 'ALL', 'CLEAR', 'REVERSE' ], // 全选、清空、反选
                    },
                    data: selectData,
                    on: function(data){
                        // change, 此次选择变化的数据,数组
                        let arr = data.arr;
                        let group_arr = [];
                        let group_ids = '';
                        $.each(arr, function (i, j){
                            group_arr[i] = j.id;
                        })
                        group_ids = group_arr.join(",");
                        $("#admin_group_ids").val(group_ids);
                    }
                })
            }
        })
    }

    form.on('switch(statusSwitch)', function(data){
        let status = 0;
        if(data.elem.checked){
            status = 1;
        }
        form.val("layPopup", {
            "status": status
        });
    });

    /**
     * 新增
     */
    form.on('submit(laySubmitAdd)', function(data){
        let field = data.field; //获取提交的字段
        let group_ids = $("#admin_group_ids").val();
        let group_arr = [];
        if(group_ids){
            group_arr = group_ids.split(",");
        }
        field.group_arr = group_arr;
        if(group_arr.length === 0){
            admin.message({
                title: '请选择角色'
                ,offset: '15px'
                ,icon: 2
                ,time: 1500
            })
            return false;
        }
        // 提交 Ajax 成功后，关闭当前弹层并重载表格
        admin.req({
            url: setter.request.domainName + controller + '/add' //实际使用请改成服务端真实接口
            , data: field
            , type: 'POST'
            , loading: true // 是否开启加载框
            , done: function(res){
                layui.table.reload('adminTable'); //重载表格
                admin.message({
                    title: '提交成功'
                    ,offset: '15px'
                    ,icon: 1
                    ,time: 1500
                })
                layer.close(layerIndex); //执行关闭
            }
        })
    });

    /**
     * 编辑
     */
    form.on('submit(laySubmitEdit)', function(data){
        let field = data.field; //获取提交的字段
        let group_ids = $("#admin_group_ids").val();
        let group_arr = [];
        if(group_ids){
            group_arr = group_ids.split(",");
        }
        field.group_arr = group_arr;
        if(group_arr.length === 0){
            admin.message({
                title: '请选择角色'
                ,offset: '15px'
                ,icon: 2
                ,time: 1500
            })
            return false;
        }
        // 提交 Ajax 成功后，关闭当前弹层并重载表格
        admin.req({
            url: setter.request.domainName + controller + '/edit' //实际使用请改成服务端真实接口
            , data: field
            , type: 'POST'
            , loading: true // 是否开启加载框
            ,done: function(res){
                layui.table.reload('adminTable'); //重载表格
                admin.message({
                    title: '提交成功'
                    ,offset: '15px'
                    ,icon: 1
                    ,time: 1500
                })
                layer.close(layerIndex); //执行关闭
            }
        })
    });

    /**
     * 基本资料
     */
    form.on('submit(laySubmitBasicInfo)', function(data){
        let field = data.field; //获取提交的字段
        // 提交 Ajax 成功后，关闭当前弹层并重载表格
        admin.req({
            url: setter.request.domainName + controller + '/basicInfo' //实际使用请改成服务端真实接口
            , data: field
            , type: 'POST'
            , loading: true // 是否开启加载框
            ,done: function(res){
                admin.message({
                    title: '提交成功'
                    ,offset: '15px'
                    ,icon: 1
                    ,time: 1500
                })
                layer.close(layerIndex); //执行关闭
            }
        })
    });

    /**
     * 修改密码
     */
    form.on('submit(laySubmitChangePass)', function(data){
        let field = data.field; //获取提交的字段
        // 提交 Ajax 成功后，关闭当前弹层并重载表格
        admin.req({
            url: setter.request.domainName + controller + '/changePassword' //实际使用请改成服务端真实接口
            , data: field
            , type: 'POST'
            , loading: true // 是否开启加载框
            ,done: function(res){
                admin.message({
                    title: '提交成功'
                    ,offset: '15px'
                    ,icon: 1
                    ,time: 1500
                })
                layer.close(layerIndex); //执行关闭
            }
        })
    });

})
